/*
 * @Descripttion: 
 * @version: 
 * @Author: ada.wu
 * @Date: 2023-11-03 23:35:56
 * @LastEditors: ada.wu
 * @LastEditTime: 2023-11-04 14:20:25
 */
import Mock from 'mockjs'

/**
 * SystemMock 模拟数据
 */
class SystemMock {



    building(option) {
        let param = this.parseOption(option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [
                    {
                        'id': '@increment', // 大楼ID
                        'name': '教学楼@integer(100,999)',//大楼名称
                        'isDelete': '@integer(0,1)', // 状态
                        'actionTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // 报修时间
                    }
                ],
            },
        })
    }
    floor(option) {
        let param = this.parseOption(option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [
                    {
                        'id': '@increment', // 大楼ID
                        'floor': '@integer(1,8)楼',//楼层名称
                        'building': '教学楼@integer(100,999)', // 大楼
                        'sort': '@integer(100,999)', // 排序
                    }
                ],
            },
        })
    }

    room(option) {
        let param = this.parseOption(option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [
                    {
                        'id': '@increment', // 教室ID
                        'name': '@integer(1,8)楼',//教室名称
                        'building': '教学楼@integer(100,999)', // 大楼
                        'floor': '@integer(1,8)层',//楼层
                        'floor': '@integer(1,8)层',//楼层
                        'ip': '@ip', //教室ip
                        'roomType': '@integer(1,3)', //教室类型
                        'lastPingTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // ping时间
                        'coreTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // 中控时间
                        'cardUpdateTime': '@datetime("yyyy-MM-dd HH:mm:ss")', // 服务器时间
                        'system': 'linux',//system
                        'k4Version': '@ip',//k4版本号
                        'lastK4MD5': '@integer(1,3)',//更新k4
                        'k4MD5': '@integer(9,20)',//更新bin
                        'lastBinMD5': '@ip',// 
                    }
                ],
            },
        })




    }


    iccard(option) {
        let param = this.parseOption(option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [
                    {
                        'id': '@increment', // 教室ID
                        'name': '@cname', // 姓名
                        'college': '管理学院', // 学院
                        'cardNo': '@string(8,16)',//卡ID
                        'status': '@integer(1,2)', //卡状态
                    }
                ],
            },
        })
    }

  


    smartlock(option) {
        let param = this.parseOption(option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [
                    {
                        'lockId': '@increment', // 门锁ID
                        'building': '大楼', // 大楼
                        'floor': '@string(1,6)楼', // 楼层
                        'room': '@string(1,2)-@string(2,3)',//教室
                        'lockName': '前门', //门锁名称
                    }
                ],
            },
        })
    }
    smartlockLog(option) {
        let param = this.parseOption(option);
        // 可以通过传参 _success 来控制返回消息的成功状态。
        return Mock.mock({
            success: param._success, // '@boolean'
            message: '@ctitle',
            code: 200,
            data: {
                totalCount: '@integer(0,10)',
                current_page: 1,
                last_age: '@integer(1,5)',
                'list|1-10': [
                    {
                        'lockID': '@increment', // 门锁ID
                        'unitNo': '@integer(10,99)', // 房间编码
                        'roomName': '综合楼-@integer(1,6)楼', // 房间名
                        'peopleName': '@cname',//用户
                        'cardMacID': '@integer(9000,1000)-@integer(9000,1000)', //物理卡ID
                        'openType': '@integer(0,9)', // 开门方式
                        'date': '@datetime("yyyy-MM-dd HH:mm:ss")', // 开锁时间
                    }
                ],
            },
        })
    }

    // 解析参数 option= {url:'/api/read?id=1', type:'GET', data:null}
    parseOption(option) {
        let param = {}
        if (option.url.indexOf('?') > -1) {
            new URLSearchParams(option.url.substring(option.url.indexOf('?') + 1)).forEach((v, k) => {
                param[k] = v;
            })
        }
        if (option.body) {
            if (option.body instanceof FormData) {
                option.body.forEach((v, k) => {
                    param[k] = v;
                })
            } else {
                param = JSON.parse(option.body);
            }
        }
        // 可以通过传参 _success 来控制返回消息的成功状态。默认返回成功消息。
        if (typeof (param._success) != 'boolean') {
            param._success = true;
        }
        return param;
    }

    // 返回标准消息对象
    stdMessage(success, message, data = '', code = 0) {
        return {
            success: success,
            message: message,
            data: data,
            code: code,
        }
    }
}

export default new SystemMock;